/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package bean;

import datapackage.DivertList;
import datapackage.IntituleProf;
import datapackage.annee;
import datapackage.centre;
import datapackage.gradeaff;
import datapackage.spec;
import java.sql.SQLException;
import java.util.Hashtable;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author salim
 */
public class PrepClean {

    public static String afficheGradePairImpaire(datapackage.AnCeBean param, List<gradeaff> lg, boolean pairimpair) {
        String res = "";
        for (gradeaff g : lg) {
            if (datapackage.DivertList.NbPaire(g.getGradeaff()) == pairimpair) {
                res += "<input type=\"checkbox\" onclick=\"submit()\"name=\"gradeaff\" value=" + g.getGradeaff();
                if (param.getGradeaff() != null) {
                    for (int grad : param.getGradeaff()) {
                        if (grad == g.getGradeaff()) {
                            res += " checked";
                        }
                    }
                }
                res += ">" + g.getGradeaff();

            }
        }
        return res;
    }

    public static String choixGradef(datapackage.AnCeBean param) {
        try {
            String res = "";
            List<gradeaff> lg = datapackage.DivertList.AvoirGradeafftotal();
            res += afficheGradePairImpaire(param, lg, false);
            res += "<br>";
            res += afficheGradePairImpaire(param, lg, true);
            return res;
        } catch (SQLException ex) {
            Logger.getLogger(PrepClean.class.getName()).log(Level.SEVERE, null, ex);
        }
        return "Pas de gradef!!!";
    }

    public static String choixSpecialite(datapackage.AnCeBean param) {
        try {
            String res = "<select  onclick=\"submit()\" name=\"spec\" size=\"3\">";
            //this instance is created in servletHoraire
            //DivertList dl=new DataPack.DivertList();Avoirspec(Nochef)
            //considerons que le numero du chef pascal:1;itani=2;jabour=3...
            //int noChef = param.getNoChef(); //faudra lire from session bean du login
            List<spec> ls = datapackage.DivertList.AvoirSpecsTotal();
            for (spec s : ls) {
                res += "<option  value=" + s.getSpec();
                if (param != null) {
                    if (param.getSpec() == s.getSpec()) {
                        res += " selected";
                    }
                }
                res += " >";
                res += s.getNomspec();
                res += "</option>";
            }
            res += "</select>";
            return res;
        } catch (SQLException ex) {
            Logger.getLogger(PrepClean.class.getName()).log(Level.SEVERE, null, ex);
        }
        return "Pas de spec!!!";
    }

    /**
     * Le centre dans le menu selected ou non
     * @param param : Parametre beans de la page
     * @param c le centre courent
     * @return selected ou chaine vide
     */
    public static String centreIsSelected(datapackage.AnCeBean param, centre c) {
        if (param != null) {
            if (param.getCentre() == c.getIdCentre()) {
                return "selected";
            }
        }
        return "";
    }

    public static String choixCentre(datapackage.AnCeBean param) {
        try {
            String res = "<select name=\"centre\" >";
            List<centre> lc = datapackage.DivertList.Avoircentres();
            for (centre c : lc) {
                res += "<option  id=\"optionnnn\" value=" + c.getIdCentre();
                res += " " + centreIsSelected(param, c) + ">";
                res += c.getNomCentre() + "</option>";
            }
            res += "</select>";
            return res;
        } catch (SQLException ex) {
            Logger.getLogger(PrepClean.class.getName()).log(Level.SEVERE, null, ex);
        }
        return "pas de centres!";
    }

    public static String choixAnnee(int annee) {
        try {
            String res = "<select name=\"annee\">";
            List<annee> la = datapackage.DivertList.Avoirannees();
            for (annee a : la) {
                res += "<option   value=" + a.getAnnee();
                if (annee == a.getAnnee()) {
                    res += " selected";
                }
                res += " >";
                res += a.getAnnee() + "</option>";
            }
            res += "</select>";
            return res;
        } catch (SQLException ex) {
            Logger.getLogger(PrepClean.class.getName()).log(Level.SEVERE, null, ex);
        }
        return "----";

    }

    /**
     * Affichage des matieres de l'enseignant selectionne dans d'autre groupe de
     * matieres
     * @param param
     * @param dl
     * @param ip
     * @param p
     * @param j
     * @return
     */
    public static String afficheConflit(datapackage.AnCeBean param, IntituleProf ip, int p, int j) {
        String res = "";
        try {
            if (ip != null) {
                List<IntituleProf> mppl = datapackage.DivertList.AvoirMPparProfPJ(param.getAnnee(), ip.getNumprof(), param.getGradeaff(), p, j);
                Hashtable hash = param.getHash();
                for (IntituleProf ipconf : mppl) {
                    /*retourner intprof pour le pj correspondant,utitlise le noenseig */
                    List<Integer> noenseigl = (List<Integer>) hash.get(ip.getNumprof());
                    if (noenseigl != null) {
                        //si il a une list
                        //res+="avnt noens"+noenseigl;
                        if (!noenseigl.contains(ipconf.getNoenseig())) {
                            /* maint on peut afficher le conflit */ res += "<font color=\"red\"><br/>";
                            res += ipconf.getIntitule() + "<br/>";
                            res += ipconf.getPrenomprof() + " " + ipconf.getNomprof() + " G" + ipconf.getNogroupe();
                            res += "</font>";
                        } //fin du contains
                    } //fin de if noensig not null
                }
                return res;
            }
        } catch (SQLException ex) {
            res = "Erreur AvoirMPparProfPJ: contacter les admistrateurs du systeme";
            Logger.getLogger(PrepClean.class.getName()).log(Level.SEVERE, null, ex);
        }
        return res;
    }//fin methode

    public static String choixLangue(datapackage.AnCeBean param) {
        String res = "";
        res += "Langues <input type=\"checkbox\" onclick=\"submit()\" name=\"langue\" value="+1;

        if (param.getLangue() == 1) {
            res += " checked";
        }//fin de if

        res+=" >";
        return res;
    }//fin methode

    public static String choixMatspec(datapackage.AnCeBean param) {
        String res = "";
        res += "Matieres-specialite <input type=\"checkbox\" onclick=\"submit()\" name=\"matspec\" value="+0;

        if (param.getMatspec() == 0) {//si zero cad on doit afficher ces matieres
            res += " checked";
        }//fin de if

        res+=" >";
        return res;
    }//fin methode




}